package com.demo.java.OD1_50.OD36;

import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【玩牌高手】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145558548
 */
public class OdMain {

    // solveMethod 计算最大分数
    public static void solveMethod(int[] nums) {
        int[] dp = new int[nums.length];
        dp[0] = nums[0] < 0 ? 0 : nums[0];  // 初始化 dp[0]

        // 动态规划的转移
        for (int i = 1; i < nums.length; i++) {
            if (i < 3) {
                // 处理前 3 个元素
                if (nums[i] >= 0 || dp[i - 1] + nums[i] > 0) {
                    dp[i] = dp[i - 1] + nums[i];
                } else {
                    dp[i] = 0;
                }
            } else {
                // 处理后续元素
                if (nums[i] >= 0 || dp[i - 3] < dp[i - 1] + nums[i]) {
                    dp[i] = dp[i - 1] + nums[i];
                } else {
                    dp[i] = dp[i - 3];
                }
            }
        }

        // 输出最终的结果
        System.out.println(dp[nums.length - 1]);
    }

    // main 方法：读取输入并调用 solveMethod
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        String[] values = s.nextLine().split(",");
        int[] nums = new int[values.length];
        for (int i = 0; i < values.length; i++) {
            nums[i] = Integer.parseInt(values[i]);
        }
        solveMethod(nums);  // 调用求解方法
    }
}